package day04;

import java.util.Scanner;

public class Demo02 {
	public static void main(String[] args) {
		test02();
	}

	//	1. 猜数字
	//	生成一个1 ~ 100 随机整数
	//	让玩家在控制台猜这个数是多少
	//	如果猜大了或猜小了, 给出相应提示
	//	猜中后显示玩家共猜了几次
	public static void test01() {
		Scanner sc = new Scanner(System.in);

		int random = (int) (Math.random() * 100);
		System.out.println("猜猜这个随机数是多少");

		int count = 0;

		while (true) {

			int i = sc.nextInt();
			count++;

			if (i == random) {
				System.out.println("恭喜你猜对了");
				break;
			}

			if (i > random) {
				System.out.println("猜大了");
				continue;
			}

			// if(i < random) {
			System.out.println("猜小了");
			// }

		}

		System.out.println("你猜了" + count + "次");

	}

	//	2. 猜拳
	//	石头(1), 剪刀(2), 布(3)
	//	玩家和电脑猜拳, 电脑随机出拳, 玩家在控制台输入相应数字代表出拳
	//	出拳完毕后显示双方出的是什么, 并判断输赢
	//	谁先赢满3把, 谁获得最终胜利

	// pc	pl
	// 1	2	pc赢, pc - pl == -1
	// 2	3	pc赢, pc - pl == -1
	// 3	1	pc赢, pc - pl == 2

	// 1	3	pl赢, pc - pl == -2
	// 2	1	pl赢, pc - pl == 1
	// 3	2	pl赢, pc - pl == 1

	// 判断输赢
	// 1. 列举法(穷举法)
	// if(pc == 1 && pl == 2 || pc == 2 && pl == 3 || pc == 3 && pl == 1){}
	// 2. 计算
	// int val = pc - pl;
	// if(val == -1 || val == 2){}
	public static void test02() {

		// 1. pc生成随机数(表示电脑出拳)
		// 2. 提示玩家出拳, 并接收用户输入
		// 3. 显示双方出的是什么
		// 4. 判断输赢, 根据输赢给相应的计数器+1
		// 5. 判断是否有哪个计算器满3
		// 6. 判断哪个计算器的结果大, 显示最终胜利者

		// 明确: 
		// 1. 计算器在哪里声明(循环外)
		// 2. 循环体中的操作有哪些步骤
		// 3. 循环条件: pc计数器 与 pl计算器, 两者都不足3

		// 准备扫描器对象, 用户输入操作要用
		Scanner sc = new Scanner(System.in);

		// 准备计数器
		int pcWin = 0, plWin = 0;

		while (pcWin < 3 && plWin < 3) {

			// 电脑出拳
			int pc = (int) (Math.random() * 3 + 1);

			// 提示玩家出拳, 并接收用户输入
			System.out.println("电脑已出拳, 请玩家出拳(石头(1), 剪刀(2), 布(3))");
			int pl = sc.nextInt();

			System.out.println("电脑出的是" + (pc == 1 ? "石头" : pc == 2 ? "剪刀" : "布"));
			System.out.println("你出的是" + (pl == 1 ? "石头" : pl == 2 ? "剪刀" : "布"));

			int val = pc - pl;

			if (val == 0) {
				System.out.println("平局");
				continue;
			}

			if (val == -1 || val == 2) {
				System.out.println("电脑赢了");
				pcWin++;
				continue;
			}

			if (val == -2 || val == 1) {
				System.out.println("你赢了");
				plWin++;
				continue;
			}

		}

		System.out.println((pcWin > plWin ? "电脑" : "你") + "获得了最终胜利");

	}

}
